treestore: Fix segfault when reordering non-existing children
authorOlivier Brunel <jjk@jjacky.com>
Tue, 15 Oct 2013 13:07:28 +0000 (15:07 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 13 May 2014 15:56:28 +0000 (11:56 -0400)
Calling gtk_tree_store_reorder() on a node without children would cause a
segfault; Fixes https://bugzilla.gnome.org/show_bug.cgi?id=698396

Signed-off-by: Olivier Brunel <jjk@jjacky.com>
gtk/gtktreestore.c

index a6e47af3981e8a8c216b62b38f9e19637df7c021..ba9c6b3c498fadf2317b12eb524eb28f1896f995 100644 (file)
@@ -2280,6 +2280,12 @@ gtk_tree_store_reorder (GtkTreeStore *tree_store,
   else
     level = G_NODE (parent->user_data)->children;
 
+  if (G_UNLIKELY (!level))
+    {
+      g_warning ("%s: Cannot reorder, parent has no children", G_STRLOC);
+      return;
+    }
+
   /* count nodes */
   node = level;
   while (node)